2018年6月,Ryan Dahl再次登上了世界上最大的非营利性JavaScript会议——JSConf EU(JavaScript欧洲大会)在柏林的演讲台。
九年前,在同样的演讲台上,Ryan介绍了尚未成型的JavaScript运行时平台(runtime platform)。在此之前,JavaScript只能用于网站和App的设计,或者说“前端”(front end),新平台允许开发者构建一个网站或网络应用的功能,也就是“后端”(back end),从而将网络开发统一为一种编程语言。这个平台就是如今98%的网站都在使用的网络主流编程语言Node.js。
Node打造了一个能让web开发人员用JavaScript编写完整堆栈的运行时环境,并巩固了JavaScript作为“web语言”代名词的地位。从2009年首次推出Node,到2018年重返会议演讲台,这几年中,不仅Node.js平台获得了发展,Ryan也成为了黑客新闻和TechCrunch圈子中无人不晓的名字,但这次他却打算抛弃之前的创造,重新开始。
2009年,人们如果想要在服务器端应用JavaScript,就需要解决JavaScript事件驱动的输入与输出(I/O)问题,恰恰因为JavaScript是单线程的,让Ryan和Node有了成功的空间。但Node的安全性基本为零、构建系统过时,还有NPM(Node包管理器)过度复杂的代码封装等问题,又让Ryan感觉到深深的遗憾:“就有点像有人在用指甲刮黑板一样让我难受,其实它可以发展得远比现在好。”
对于Ryan来说,“远比现在好”是指,Node应该更简单易用而且设计优雅。所以,Ryan向大家介绍了他的新作Deno,一个可以在(Chrome)V8上运行的安全运行时环境。Ryan解释说,这个新平台同样是JavaScript的运行时环境,但更快、更安全,也更优雅,它将会取代Node,成为世界上首选的编码语言运行时环境——不过这一切的前提是新平台能顺利开发完成。
“到目前为止,我觉得进展还算让人满意,”Ryan说。这是软件工程师才能做到的事情:Ryan想要开启下一版本的自己,将他演讲的内容在现实中通过代码迭代实现出来——指出各种bug,保留喜欢的元素,然后描述他将如何重建其余部分。